"""
在 Python 中，异常可以通过函数调用栈（function call stack）来传递。
当在一个函数中引发异常，如果该异常在当前函数中没有被处理，它会沿着函数调用栈向上传递，
直到被捕获并处理，否则程序将终止并显示异常信息。
"""
def demo1():
    num = int(input("输入整数："))
    print('I am demo1')
    return num


def demo2():
    num2 = demo1()
    print('I am demo2')
    return num2


# 利用异常的传递性，在主程序捕获异常
try:
    print(demo2())
except Exception as result:
    print("未知错误 %s" % result)